/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pl.edu.amu.wmi.kino.visualjavafx.javafxcodeparsers.api;
import java.lang.Class;
import java.util.ArrayList;
/**
 *
 * @author Admin
 */
public interface Parser {
    /**
     * Method returns true if this Parser is able to parse
     * code of an object which name or alias is in the given String
     * @param s
     * @return
     */
    public boolean canParse(String s);
    /**
     * This method returns Object [ with all of its children]
     * created by parsing given Object created by InstructionDivider
     * @param s - String from the opening bracket "{" of an object to closing bracket "}"
     * @param recursionLevel - how deep object is in the tree of objects
     * @return
     */
    public Object parse(Object instructionsToParse,Object parent);
    /**
     * Returns an ArrayList<Class> of Class objects of Parsers whose objects can contain
     * object generated by this parser
     * @return
     */
    public boolean getProperContext(Class c);
}
